Hierarchical User Interface

ABSTRACT

In one embodiment, one or more components of a user interface are arranged in a hierarchy of layers. The user interface is presented according to the structure of the hierarchy, with one or more first components from a first layer floating on top of a second component from a second layer beneath the first layer. The first components are children of the second components. A user may interact with components uniformly, meaning that each specific user interaction applied to each component results in similar response from each component.

RELATED APPLICATION(S)

This application claims the benefit, under 35 U.S.C. §119(e), of U.S.Provisional Patent Application No. 61/593841, filed 1 Feb. 2012, whichis incorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to a user interface having componentsarranged in a hierarchy.

BACKGROUND

A user of an electronic device or a software application (includingstandalone, web-based, or mobile application) may interact with thedevice through a user interface. The user interface may provide outputto the user and accept input from the user. Electronic devices that maycontain a user interface include a desktop computer, laptop computer,tablet computer, personal digital assistant (PDA), smartphone, satellitenavigation device, portable media player, portable game console, kioskcomputer, point-of-sale device, or other suitable device.

A user may interact with a device or software application through theuse of visual displays, such as graphics or text generated on a displayof the device. For example, a graphical user interface (GUI) may providewindows, icons, pictures, video, or any other suitable visual display toprovide output to a user. A user of an electronic device may interactwith a device or software application through the use of a computermouse, keyboard, trackball, scroll wheel, buttons, or any other suitablemeans. A user may also or alternatively interact with a device orsoftware application through contact with a touch-sensitive area of thedevice. For example, a touch-sensitive area may be a resistive orcapacitive touch-sensitive display. Contact providing input to thedevice may be made either directly by the user contacting thetouch-sensitive display or by a utensil such as a stylus operated by theuser.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a portion of an object hierarchy that includes anumber of objects.

FIGS. 2A and 2B provide an example of simultaneous display of a parentuser interface (UI) component and with some of it child UI components inthe context of a digital book reader UI.

FIGS. 3A and 3B illustrate example manipulations of a summary of acollection of UI components presented as a table of contents.

FIGS. 4A-D and FIG. 5 illustrate example interactions with a floating UIcomponent.

FIGS. 6A-C and FIG. 7 illustrate: 1) UI components having multiplestates; and 2) example navigations among hierarchical layers.

FIGS. 8A-C illustrate scrolling through UI components.

FIG. 9 illustrates an example electronic device.

DESCRIPTION OF EXAMPLE EMBODIMENTS

In particular embodiments, a user interface (UI) may include any numberof components. The UI components may represent or correspond to variousobjects of any applicable types. In particular embodiments, the UIcomponents may be arranged in a hierarchy and presented to a useraccording to the structure of the hierarchy. In particular embodiments,the UI components' hierarchical structure corresponds to thehierarchical structure of the objects the UI components represent. TheUI hierarchy may include any number of layers, and at each layer, theremay be any number of UI components. Relationships may exist amongspecific UI components, and the positions of the individual UIcomponents within the UI hierarchy may indicate specific relationshipsamong these components. When the user interface is presented to a user,the user may navigate between UI layers or UI components as well asinteract with the UI components.

In general, objects may be arranged in a hierarchy. In particularembodiments, objects may be organized into a hierarchy based on how theindividual objects are related to each other. The hierarchy may have anynumber of levels, and at each level, there may be any number of objects.Parent-child or sibling relationships may exist between specific objectsin the hierarchy. Within the hierarchy, a parent object is one levelabove the level of its child objects. Two sibling objects are at thesame level and share the same parent object. An object and its children,siblings, or both may from a group within a hierarchy. In addition, anyportion of the hierarchy may also be considered a hierarchy in itself.As an example, FIG. 1 illustrates a portion of an object hierarchy 100that includes a number of objects 110. In particular embodiments, anobject in a hierarchy may or may not have a parent. If an object doesnot have a parent, it may be referred to as a “root” object (e.g.,object 110A). In particular embodiments, an object in a hierarchy may ormay not have any children. If an object does not have any children, itmay be referred to as a “leaf” object (e.g., object 110B). If an objectdoes have children (e.g., object 110C), it may have any number ofchildren. In addition, objects sharing the same parent may be referredto as each other's “siblings”. For example, in FIG. 1, object 110C isthe parent of objects 110D and 110B. Objects 110D and 110B are thechildren of object 110C and are siblings to each other. Thus, ahierarchy of objects (e.g., object hierarchy 100) not only includes theindividual objects themselves but also indicates the relationships amongthe specific objects. Moreover, the position of a specific object withinthe hierarchy may be used to indicate its relationships with otherobjects in the hierarchy.

Objects may be of any applicable type. As described above, in particularembodiments, an object may be a component of a user interface. In thiscase, the object hierarchy may be a UI hierarchy (e.g., a hierarchy ofUI components). In other words, components of a user interface may beorganized into a hierarchy. The UI hierarchy may have any number oflayers corresponding to the levels of the object hierarchy, and at eachlayer, there may be any number of UI components. The position of aspecific UI component within the hierarchy may indicate itsrelationships with other UI components in the hierarchy. The UIcomponents may be presented to users according to the hierarchicalstructure (e.g., in layers).

In particular embodiments, an object may correspond to a piece ofuser-consumable content. In particular embodiments, an object may beconsumed by a user if the user may, for example and without limitation,interact with, view, read, listen to, manipulate, or handle the object.For example, some user-consumable objects may be texts, images, videos,audios, feeds, executables (e.g., application programs or games),websites, web pages, digital books, photo albums, posts, or messages. Inparticular embodiments, user-consumable content, or more specifically,user-consumable objects, may be organized into a hierarchy based on, forexample, the relationships among the individual pieces ofuser-consumable content. Consequently, a hierarchy of user-consumablecontent may be represented as a hierarchy of objects, where individualobjects in the hierarchy may correspond to specific pieces ofuser-consumable content (e.g., texts, images, videos, audios,executables, etc.). In addition, the structure of the hierarchyindicates the relationships among the specific pieces of user-consumablecontent.

In particular embodiments, the relationships among the objects in ahierarchy may correspond to how the objects are organized and presentedto users. In particular embodiments, when presenting a hierarchy ofobjects to a user of a device, the objects may be organized andpresented according to the structure of the object hierarchy. Morespecifically, the objects may be presented in a user interface providedon the device according to the structure of the object hierarchy so thatthe user interface itself becomes hierarchical as well. Consequently,the user interface may include any number of layers, respectivelycorresponding to the levels in the object hierarchy. The positions ofthe objects within the hierarchy are preserved in the user interface,such that a specific object at a specific position in the hierarchy ispresented in the corresponding position in the user interface. Therelationships among the objects within the hierarchy are maintained inthe user interface. In other words, there may be an one-to-onecorrespondence between an object in the object hierarchy and a UIcomponent in the user interface, such that each object is represented bya UI component.

As an example, in the context of the desktop of a computing device, thedesktop may be a parent object, and sometimes the root object of ahierarchy, whose child objects are the individual software applicationsavailable on the desktop. A software application, while itself being oneof the child objects of the desktop, is also the parent object of theindividual components of that software application. Different softwareapplications may include different components. For example, for asoftware application that manages digital books (e.g., a book readerapplication), its components may include the digital books available,the individual chapters of each book, the pages of each chapter, and thetexts, images, videos, audios, or any graphical user interface (GUI) orcontent or media elements on each page. Each of these also correspondsto an object in the hierarchy. More specifically, when these objects areorganized in a hierarchy, the book application may be the parent objectof the digital books. A digital book may be the parent object of theindividual chapters of that book. A chapter, while itself being one ofthe child objects of the book, is also the parent object of the pages inthat chapter. A page is the parent object of the texts, images, videos,audios, or any GUI or content or media elements on that page. A textblock, image, video, audio, or GUI or content or media element is one ofthe child objects of the page to which it belongs. Similarly, for asoftware application that manages news feeds, its components may includethe individual news channels and the news stories within each channel.Each of these may correspond to an object. When these objects arearranged in a hierarchy, the news-feed application, while itself beingone of the child objects of the desktop, is also the parent object ofthe news channels. A news channel in turn is the parent object of thenews stories included in that channel. Some or all of these objects maycorrespond to UI components of a user interface presented on thecomputing device.

As another example, in the context of the Internet or the World WideWeb, the Internet may be a parent object whose child objects are theindividual websites. A website, while itself being one of the childobjects of the Internet, is also the parent object of the individual webpages of that website. A web page, while itself being one of the childobjects of the website to which it belongs, is the parent object of thetexts, images, videos, audios, or links (e.g., Uniform Resource Locators(URLs)) included in the web page. Each text block, image, video, audio,or link may also correspond to a specific object in the hierarchy. Someor all of these objects may correspond to UI components of a web-baseduser interface that may be presented to a user through a web browser.

As a third example, a website, such as a social-networking website, maybe arranged in hierarchical structure. In this context, thesocial-networking website may be a parent object whose child objects arethe components (e.g., photo albums, user profile pages, etc.) of thewebsite. For example, a photo album, while itself a child object of thesocial-networking website, may in turn be a parent object, and theindividual photos within the album may be the child objects of the photoalbum. A user's profile page may be structured in such a hierarchicalfashion as well. The profile page itself may be considered a parentobject, and the individual objects on the profile page may be the childobjects of the profile page. In particular embodiments, a profile pagemay be considered and rendered (e.g., for presentation to a user) as alinear timeline of objects, such as, for example and without limitation,photos, photo albums, check-ins, comments from other users, attendedevents, tags, etc. In particular embodiments, child objects in thehierarchy may also include applications the user has added to theprofile page, such as a Spotify music sharing application. Moreover,individual stories, songs the user has listened to, and playlists may bechild objects at a lower hierarchical level. In particular embodiments,child objects in the hierarchy may include particular sections of auser's profile, such as the user's education and employment information,or the public “wall” of the user's profile page. As in the examplesabove, these objects may correspond to UI components of a web-based userinterface that may be presented to a user through a web browser orapplication. While the above examples describe particular examples ofobjects and corresponding UI components arranged in hierarchicalstructures, this disclosure contemplates representing and addressing anycollection of content in a hierarchical structure.

As the above examples illustrate, an object may be of any type and thisdisclosure contemplates any applicable types of objects. For example andwithout limitation, the term “object” may refer to any type of content,including but not limited to images, videos, captions, text blocks orboxes, user interface elements, URLs, newsfeed stories, references toother objects, advertisements, calendar events, units for displayingopen graph analysis that may be graphically rendered, applications,websites, web pages, books, and chapters. In addition, “object” mayrefer to UI components arranged in a hierarchical structurecorresponding to the hierarchical structure of the objects the UIcomponents represent. In particular embodiments, given a hierarchy ofobjects, which may be a portion of another, larger hierarchy of objects,the hierarchical relationships (e.g., parent-child or siblingrelationships, positions of the objects within the hierarchy) betweenspecific objects may direct some aspects of how these objects behave inthe context of a user interface or how the objects are presented to auser. Particular UI components in a hierarchy may share attributes ofpresentation, interaction, functionality, or any other suitablecharacteristics. In other words, one or more attributes of e.g.,presentation may be shared by two or more UI components in a hierarchy,as described more fully below.

In particular embodiments, a set of hierarchical UI components may bepresented in a uniform or consistent way to a user. Particular aspectsof one UI component's presentation may also uniformly apply to a set ofUI components. A set of UI components may include all UI componentssharing a parent, all UI components on the same layer of the hierarchy,all UI components in the hierarchy, or any other suitable set of UIcomponents in the hierarchy. For example, all UI components at a givenlayer of the hierarchy may be displayed with the same dimensions or havethe same boarder around the component when presented to a user. Asanother example, UI components that are parent objects may be displayedwith some or all of their children. As another example, graphicalembellishments such as objects fading in or out as a user navigatesthrough the hierarchy may occur uniformly for all UI components in thehierarchy. While this disclosure provides specific examples ofpresenting hierarchical UI components in a uniform way for particularsets of UI components, this disclosure contemplates applying anysuitable presentation characteristics in a uniform way for any suitableset of hierarchical UI components.

In particular embodiments, a user may interact with hierarchical UIcomponents, for example, by observing, manipulating, handling,selecting, moving, opening, closing, activating, altering, or resizingobjects. In particular embodiments, a group of interactions may beuniformly available to a user for a set of UI components in thehierarchy. In other words, if a group of interactions is available forone UI component in the set, some or all of the same group ofinteractions may be available for all UI components in the set. Inaddition or in the alternative, interactions may occur or be performedin a uniform way for a set of UI components. A set of UI components mayinclude all UI components sharing a parent, all UI components on thesame layer of the hierarchy, all UI components in the hierarchy, or anyother suitable set of UI components in the hierarchy. As an example, anoperation that navigates from one object to another may be performed ina uniform way for a set of UI components. As an illustration and not byway of limitation, a navigation operation may be a swiping gestureperformed by one or more fingers on a touch-sensitive display of adevice. Swiping may move the object in the same direction as the swipe,e.g., swiping from right to left on the display moves the swiped objecttowards left, and swiping from top to bottom moves the swiped objectdownward. Swiping may also move the swiped object in the oppositedirection of the swipe. As another example, a resizing operation may beperformed in a uniform way for a set of UI components. As anillustration and not by way of limitation, a resizing operation may beperformed by double clicking on the UI component with agraphically-generated cursor or double tapping a UI component on atouch-sensitive display of a device. As another example, a movingoperation may be performed in a uniform way for a set of UI components.As an illustration and not by way of limitation, a moving operation maybe performed by using a graphically-generated cursor to select a UIcomponent and drag it around a display. On a touch-sensitive display,one or more of a user's fingers may be used to select a UI component anddrag it or rotate it on a display by dragging or rotating the fingersselecting the object. As another example, one or more states availableto one UI component may be uniformly available for a set of UIcomponents. As an illustration and not by way of limitation, a UIcomponent may have several different presentation states, such as asummary view of the component, a cropped view of the component, and afull-screen view of the component. The actions taken by a user totransition a UI component among various states may be the same for a setof UI components. While this disclosure describes particular examples ofinteractions that may be uniformly available or executed for a set ofhierarchical UI components, this disclosure contemplates any suitableinteractions that may be uniformly available or executed for anysuitable set of hierarchical UI components.

As discussed above, hierarchical UI components may share one or morepresentation characteristics. As an example, when a device displays aparent UI component the device may simultaneously display some or all ofthe parent component's children. Similarly, when one or morechild-objects are displayed the parent of the objects may besimultaneously displayed. FIG. 2A illustrates an example display of aparent object and some of its children in the context of a reader UIapplication. A reader UI enables a user to view and navigate content(e.g., books, news, images, videos, messages, e-mails, albums, music,any websites, including a social networking website hosted by a socialnetworking system, etc.) on an electronic device. In particularembodiments, viewable content may include any number of UI components ofvarious formats (e.g., book, chapter, page, text, image, video, audio,any GUI, contend, or media element) arranged in a hierarchy. A user mayinteract with specific UI components using various input means. As anexample, if the electronic device supports touch-screen functionalities(e.g., tablet or smartphone), then the user may interact with specificobjects through various hand gestures (e.g., slide, pinch, tap). ReaderUI components may be interactive and manipulated via the user's input asdescribed more fully below.

In particular embodiments, a reader UI may be a digital book thatincludes any number of sections (e.g., chapters). Each section mayinclude any number of pages. Each page may include any number of textblocks, images, videos, audios, etc. In the example of FIG. 2A, section200 (i.e. the “Introduction” section) is the parent object of thechild-object pages 220 shown in strip 210, and object 230 is achild-object photo of the page 220 on which it is contained. Strip 210is the table of content (TOC) of the pages 220 in section 200 andincludes the thumbnail versions of the individual pages 220 in section200. Strip 210 is one example of displaying multiple child objects withtheir parent. In this example, background area 200 is the lowest layerthe hierarchy displayed on the device. TOC area 210 is another layerpositioned on top of the background layer. Pages 220 in the TOC area 210are a third layer positioned on top of the TOC layer, and image 230 is afourth layer floating on top of the page 220 on which it is contained.Thus, in this example UI components from four layers of the hierarchyare displayed simultaneously. In particular embodiments, when objectsfrom two or more levels of a hierarchy are displayed, one of the levelsmay be a primary level, taking up a larger portion of the display thanone or more secondary levels taking up a smaller portion of the display.For example, TOC area 210 (along with its child objects) are displayedas secondary UI components, taking up a smaller portion of the displaythan its parent UI component section 200.

In particular embodiments, each UI component displayed on a device maybe selected or manipulated individually. For example, TOC area 210 inFIG. 2A may be displayed in any orientation, such as horizontally,vertically, or diagonally, and may be displayed on or moved to anyposition on the display (e.g., bottom, top, middle, etc.). FIG. 3Aillustrates TOC area 310 moved towards the middle of the display as aresult of, for example, the user picking up TOC area 310 with a fingeron a touch-sensitive screen and dragging TOC area 310 to the middle ofthe screen by dragging the finger picking up TOC area 310 to the middleof the screen. In particular embodiments, this allows the user to peekbehind TOC area 310 to see the layer behind it, which in this example isbackground layer 300. Once released by a user, TOC area 310 may remainin its new position or may return to its original position. Inparticular embodiments, TOC area 310 may be resized. This may beachieved by selecting TOC area 310 with two fingers and then spreadingthe two fingers apart. Conversely, moving the two fingers selecting TOCarea 310 closer together may decrease the size of TOC area 310. As anillustration, TOC area 310, along with its child pages (e.g., page 320)and images (e.g., image 330), in FIG. 3B has increased in size relativeto TOC area 310 in FIG. 3A. The characteristics of and methods ofachieving display, selection, movement, and resizing of UI componentsdescribed above may apply uniformly to one or more sets of UI componentsin a hierarchy. For example, the ability to and method of resizing thecollection of child UI components described above may uniformly apply toany similar collection of UI components in the UI reader application. Inaddition, while the above example is in the context of a reader UI, thisdisclosure contemplates application of the above principles to anysuitable UI components in a hierarchical structure.

In particular embodiments, one or more objects or groups of objects maybe connected in a particular way or for a particular purpose. Forexample, in the reader UI of FIG. 2B, child components TOC 210A and 210Bare connected or “locked” to their respective parent components 200A and200B for the purposes of movement. As shown in FIG. 2B, TOC 210A movesoff of the display as parent 200A moves off of the display, and viceversa. Conversely, TOC 210B moves onto the display as parent 200B movesonto the display, and vice versa. As an example of applying attributesof characteristics (such as presentation, interactions, etc.) in uniformway, connecting or locking of objects together may uniformly apply to aset of objects in hierarchy. For example, the locking of child TOCs 210Aand 210B to their respective parent components 200A and 200B may alsoapply to any child TOCs for any digital book opened in the reader UIapplication. While the above examples illustrate connecting or lockingparticular UI components in the context of a reader UI, this disclosurecontemplates locking or connecting any suitable UI components in anysuitable application. For example, UI components of a social-networkingweb page, such as a timeline of user posts, may be connected forpurposes of navigation or display. Moving some of the user posts in thetimeline off the display may simultaneously move other user posts in thetimeline onto the display, or hiding a particular post from a particularuser may hide all posts by that user.

In particular embodiments, each page 220 of FIG. 2A may be displayed asa UI component floating on an imaginary or metaphorical “strip” of papersuch as TOC strip 210. As another example, image 230 appears to “float”on top of its respective page 220 by slightly extending beyond theboundary of the page. While the above example relates to components in areader UI, this disclosure contemplates extension of the floating-objectconcept to any collection of content organized in a hierarchicalstructure, such as any suitable hierarchy of UI components. Thus, inparticular embodiments a photo album having a hierarchical structure maybe rendered as a parent-object strip containing floating child-objectphoto thumbnails for each photo contained in the album. As anotherexample, a user profile or timeline on a web page may be represented asan infinite imaginary parent-object strip of paper containing aplurality of floating child-object thumbnails representing photo albums,applications, events, etc., with each child-object thumbnail possiblycontaining its own child objects. In particular embodiments, floatingobjects may be rendered on a distinct layer of the hierarchy with thefloating object(s) obscuring or blocking portions of the UI objects theyoverlap. In particular embodiments, floating UI components may berendered at varying degrees of opacity or transparency.

In particular embodiments, displaying an object as floating on top ofanother object is a visual indication that a user may interact with thefloating object, by, for example, resizing, opening, moving, initiatinganimation or other graphical embellishments, etc. In other words,displaying on abject as floating on top of another object is anattribute that uniformly indicates to a user a set of interactions areavailable for the floating objects. In particular embodiments, afloating object may by a UI component that may be manipulated by theuser in various manners. TOC area 310 illustrated in FIGS. 3A and 3B anddiscussed above is one example of a floating UI component that may bemanipulated by a user. As another example, a page 400 illustrated inFIGS. 4A-D includes an image 410 floating on top of page 400. Here,image 410 is displayed as a floating object, and only half of the entireimage (e.g., a cropped version) is actually shown. A user may “lift”image 410 up and off page 400 by pinching image 410 up with two fingers,as illustrated in FIG. 4B. The two fingers may be placed anywhere nearone or more edges of image 410. When image 410 is pinched up and off thepage, the entire image appears, but folded at an angle relative to thedistance between the two fingers the user used to pinch the image. Inparticular embodiments, if the user pinches out beyond a predeterminedthreshold distance and then takes his fingers off the image, the imageexpands to fill the entire screen. When a floating object is pinched upor selected, it may be moved to different positions on the screen, asillustrated in FIGS. 4C and 4D. It may also be rotated, as illustratedin FIG. 5. Here, an image 510 included in a page 500 has been pinched up(e.g., using two fingers) and rotated (e.g., by rotating the fingerspinching image 510). The shadows around image 510 rotate with image 510accordingly to maintain the three-dimensional effect. In addition, asillustrated in FIG. 5, a portion of image 510 overlays the text behindit on page 500. In particular embodiments, when a floating UI componentoverlays some text behind it, the appearance of the text may be adjustedto simulate the effect of the shadow casted by the object on the text,for example by slightly darkening or distorting the text. In particularembodiments, floating UI components may be manipulated or interactedwith just like any other UI component, for example by moving or resizingthe floating component. In particular embodiments, as a user scrollsthrough floating UI components displayed next to each other, the visibleedge of the scrolled object may be pushed over on top of the adjacentedge of the previous or next object, with shading or other suitablegraphical embellishments. While the above example relates to a readerUI, this disclose applies to any suitable floating UI component in anysuitable context. As an example and not by way of limitation, a web pagemay display a user profile or timeline containing a plurality offloating child-object thumbnails representing photo albums,applications, events, status updates, likes, etc. The above discussionrelating to display and manipulation applies to the floating objects onthe web page, and any other suitable floating objects.

As briefly described above in FIG. 4A-D, an image that is initiallydisplayed in partial-screen mode may be pinched open to full-screenmode. In general, any object may have two or more states. In particularembodiments, each “version” of an object corresponding to the particularstate the object is in may be an independent object in the hierarchy. Inparticular embodiments, any UI component may have two or more states,for example, two or more display modes. In particular embodiments, a UIcomponent such as an image may have multiple cropped versions inaddition to the full-size image. The cropped versions may be shown indifferent situations and depend on the view or mode. For example, a UIcomponent's states may include a full-screen state, an in-page state,and a TOC state or thumbnail state. In the full-screen state, the UIcomponent occupies all or almost all of the entire display of theelectronic device, as illustrated by image 630 in FIG. 6C. In the TOCstate, image 630 in FIG. 6A is displayed within a portion of thedevice's display. A third state for image 630 is displayed in FIG. 6B.It differs from full-screen image 630 in FIG. 6C in several aspects.First, in full-screen mode, image 630 shows the entire image, while FIG.6B only shows a portion (i.e., a cropped version) of image 630. Image630 in FIG. 6C has a caption 650 that differs from caption 640 includedimage 630 of FIG. 6B. In full-screen mode there is an icon 660 on image630 that represents a geo-location tag. When a user interacts with (forexample, by single tapping) icon 660, the underlying geo-location tagcauses a map 700 to be displayed, as illustrated in FIG. 7. Map 700includes an indicator 710 indicating the geographical location of thesubject matter in image 630 and another indicator 720 indicating, ifknown and enabled by the user and user's device, the currentgeographical location of the user and the electronic device displayingthe digital book. In addition, there is an icon 730 that enables theuser to close the map and return to the previous page, here image 630 inFIG. 6C.

A UI component may transition between its various states in response toa user input. For example, a user may single tap, double tap, or pinchopen a cropped version an image to transition to the full-page view. Inparticular embodiments, immediately after the transition to full-screenview the image may initially still be shown with the features of thecropped version. The display may gradually zoom in or out on the imageuntil eventually the complete image is shown. In particular embodiments,the user interface may interpret zooming out (i.e., pinching) an objectbeyond a predetermined amount as an indication that the user wishes toclose the object and return to the previous hierarchical level. In theexample described above, in full-screen mode map 700 may display theentire globe. A user zooming out on the map such that the map no longertakes up a predetermined amount of the display (e.g., 50%) may beinterpreted as an indication that the user wishes to close map 700 andreturn to the previous page, here image 630 in FIG. 6C. While thedisclosure above describe particular types of states and transitionsbetween states of UI components in the context of a reader UI, thisdisclosure contemplates any suitable number of states and transitionsbetween states for any suitable set of UI components in any suitablecontext. In addition, as described in the examples above, any suitableUI components may have unique behaviors or properties in any of itsstates.

As discussed above, interactions between a user and hierarchical UIcomponents may include transitioning one or more UI components amongvarious pre-determined states. In particular embodiments, another set ofinteractions between a user and one or more hierarchical UI componentsincludes navigating among the various components and layers ofcomponents in the hierarchy. In particular embodiments, a user maynavigate among UI components existing on a given layer of the hierarchy.In particular embodiments, a user may navigate among different layers ofUI components in the hierarchy. In each case, the navigation follows thestructure of the hierarchy, and the relationships indicated by thehierarchical structure are maintained throughout the navigation. Forexample, the hierarchy automatically maintains the relationship betweenUI components such that if transitioning from one layer of the hierarchyto another, the transition is to the appropriate parent or child UIcomponents of the transitioned-from level. As an example, if a usernavigates from page 620 in FIG. 6B to the layer of the page's parent,the UI reader automatically navigates to parent section 600 illustratedin FIG. 6A. If the user were viewing page 620 and then navigated to apage having a different parent, a navigation to the parent layer wouldcause the display to transition to the parent of the navigated-to page.In this way, the book-reader UI automatically maintains and displays therelationship among objects while a user navigates through the hierarchy.As illustrated throughout this disclosure, in particular embodiments thenavigation operations and the graphical representation of thenavigations may be uniform for a set of hierarchical UI components. Forexample, if a swiping operation provides for navigation among UIcomponents at one layer of the hierarchy, the same swiping motion mayprovide for navigation among UI components at any layer of thehierarchy.

Any suitable input may be used to accomplish a navigation interaction.Navigation inputs may include gestures performed on a touch-sensitivedisplay of a device, and may include input from a peripheral such as acomputer mouse, trackball, keyboard, etc. Navigation gestures performedon a touch-sensitive display may include swiping one or more fingersacross the display, pinching together or separating a plurality offingers placed on the display, single or double tapping one or morefingers on the display, or any other suitable gesture. Navigation inputfrom a peripheral may include single or double clicking a UI componentor navigation icon, scrolling a trackball or wheel, any suitablecombinations of movement and clicks select portions on the display witha cursor, pressing one or more keys on a keyboard, or any other suitableinput. The characteristics of navigation operations and the graphicaldisplay of navigation among hierarchical UI components and layers isdescribed more fully, below.

In particular embodiments, navigation among UI components or layers of ahierarchy may be accomplished by scrolling. Scrolling may be achieved byany of the inputs or interactions described above. As an example,scrolling may be accomplished by a navigation operation such as aswiping gesture performed by one or more fingers on a touch-sensitivedisplay of a device. Swiping may move the object in the same directionas the swipe (e.g., swiping from right to left moves the swiped objecttowards left, and swiping from top to bottom moves the swiped objectdownward). Swiping may also move the swiped object in the oppositedirection of the swipe. Swiping in the horizontal direction may scrollamong objects at one level. For example, swiping from right to leftmoves to the object existing immediately to the right of the objectswiped, and swiping from left to right moves to the object existingimmediately to the left of the object swiped. Similarly, swiping in thevertical direction may navigate between different levels or layers ofobjects. In particular embodiments, a “scrubber” (such as scrubber 240illustrated in FIG. 2A) corresponds to individual objects, groups ofobjects, or portions of a hierarchy. For example, in the reader UI ofFIG. 2A each dot in scrubber 240 corresponds to a specific section orchapter of the digital book. In this example, user may navigate to thevarious sections or chapters of the book by sliding across scrubber 240or tapping on a specific dot with a finger. In general, a scrubber maybe used to navigate among any suitable UI components in any suitablecontext.

At any given time, a device may display one or more UI components at afirst layer of the hierarchy. A navigation operation may transition thedisplay from one or more UI components on the first layer to one or moreUI components on a second layer. The user may transition between levelsin a hierarchy by performing any suitable transition operation. Forexample, a user may single or double tap a UI component displayed on atouch-sensitive device, resulting in a transition of the UI component,and possibly one or more of its siblings, to a full-screen or primarydisplay. As discussed above, in particular embodiments each state of anobject (such as full-screen mode and partial-screen modes) is itself anobject in the hierarchy As another example, gestures such as “pinching”and “pinching open” (also referred to as “reverse pinching” or“zooming”) may resize one or more UI components, and at a predeterminedlevel of magnification (e.g., when the object occupies 50% of theavailable display) the zoom-in gesture results in a transition tofull-screen display of the object or objects being magnified. Likewise,at some level of minimization, the UI components may transition to asmall-screen display. Gestures accomplishing zooming and reversepinching generally involve registering two sensor inputs on the inputsurface (generally a capacitive or resistive touch sensor, though thisdisclosure contemplates camera-based sensors as well) at locationscorresponding to the graphical render of a particular UI component,followed by one or more continuous sliding or motion inputs. Thisoperation may be most easily visualized as “squeezing” an object on adisplay surface between two digits in reverse. Such a “zoom” or “reversepinch” operation may, in particular embodiments, expand the UI componentto a predetermined size, such as a full screen view, or to a predefinedstate, as discussed above. For example, placing two fingers at thepositions shown in FIG. 3B and pinching the fingers together results inminimization of TOC UI component 310, as shown in FIG. 3A. As anotherexample of a navigation operation that transitions between layers of UIcomponents, when a user reaches the last child object of a parent objectand performs a navigation operation that navigates through childobjects, the display may transition to the parent-object level. As anexample, when the user reaches the last photo of a photo album andperforms a navigation that would otherwise navigate to the subsequentphoto, the display may transition to the photo album layer. Thetransition may be to the parent object of the child just navigated fromor the parent object of the next child object in the hierarchy. A usermay navigate to the root UI component or layer in the hierarchy, whichmay be a desktop or home screen of a device.

FIGS. 6A, B, and C illustrate the effect of a navigation operation inthe example of a reader UI. In FIG. 6A, page 600 is the parent UIcomponent of floating TOC strip 610, which itself contains child UIcomponents such as page 620. Page 620 may contain one or more children,such as image 630, which may itself contain children. When a userperforms a transition operation on a particular page in strip 610, thedisplay may transition the page to full-screen mode, as illustrated inFIG. 6B. Performing another transition operation on child image 630 inFIG. 6B may transition the display to the full-screen state of image630, as illustrated in FIG. 6C. A user may perform the same or anothernavigation operation to navigate to lower layers of the hierarchy, e.g.,from image 630's full-screen state in FIG. 6C to it's parent page 620'sfull-screen state in FIG. 6B. While the disclosure above describestransitions among particular UI components at particular layers in thecontext of a UI reader, this disclosure contemplates transitioningbetween any suitable layer in any suitable UI, such as a socialnetworking website, software application, or a UI of a desktop computeror mobile device.

In particular embodiments, a navigation operation may navigate amongobjects at the same level of a hierarchy. As an example, UI componentsmay be arranged in a hierarchy and displayed on a device, and a user ofthe device may navigate from one or more UI components to one or moreother UI components on the same layer of the hierarchy. As describedabove, in particular embodiments a navigation operation may result frominput provided to the device via a peripheral, such as moving orclicking a mouse to manipulate a graphically-generated cursor. Inparticular embodiments, the navigation operation may be accomplished bycontact with a touch-sensitive display of a device, such as one or moregestures performed on the display.

FIGS. 8A-C illustrate an example of scrolling among hierarchical UIcomponents at a given layer in the context of a reader UI. In FIG. 8A,page 810 is the current page displayed on a device and is shown infull-screen mode. By sliding a finger in the left direction across thescreen, page 810 recedes from view and the adjacent page 820simultaneously and seamlessly scrolls into view, as illustrated in FIG.8B. In particular embodiments, when receding or moving onto the displayUI components may have one or more different attributes than UIcomponents that are entirely or mostly on the display. As an example, inFIG. 8B page 820 is slightly smaller in size than that of page 810. Whena pre-determined amount (e.g., 50%) of page 820 has moved onto thedisplay page 820 takes the usual size of a page in the reader UI, asillustrated in FIG. 8C. Page 820 continues to scroll onto the display aspage 810 scrolls off the display, as illustrated in FIG. 8C. Inparticular embodiments, scrolling may be paused or halted at any pointduring the navigation. For example, a user who scrolls between pages byswiping a finger across the display may interrupt the scrolling and“freeze” the display in place by interrupting the swiping motion andholding their finger in place. While the above example relates toscrolling specific UI components in the context of a reader UI, thisdisclosure contemplates that the concepts and features described abovemay be applied to any suitable navigation among any suitable UIcomponents in any suitable context.

As described above and illustrated in FIGS. 2A and 2B, groups of objectsmay be connected or locked together in a particular way or for aparticular purpose. In the example of FIG. 2A, a section 200 may bedisplayed with its child objects (e.g., pages 220) in a TOC area 210.Section 200 and it child TOC area 210 are connected for the purposes ofnavigation and display. For example, if a user scrolls at either theparent or child layer, the other layer scrolls as appropriate tomaintain the proper display of the relationships in the hierarchy. Inother words, if a user scrolls TOC strip 210 until the pages 220contained in the TOC strip 210 are no longer child UI components ofsection 200, section 200 will scroll off the screen with its childrenand the next section will scroll onto the screen with its children. Thisis illustrated in FIG. 2B, where TOC 210A has reached the end of its UIcomponents, and thus parent section 200A is scrolled off the displaywhile parent section 200B of TOC 210B is scrolled onto the display.Likewise, if a user scrolls at section level 200A or 200B, strip 210Aand 210B, respectively, will also scroll as appropriate. In particularembodiments, connected objects scroll in synchronization with eachother. In FIG. 2B, the last few pages of TOC strip 210A of the graduallymove left out of view and the first few pages of TOC strip 210Bgradually move left into view. At the point of transition 250 betweenthe two components, the receding edge of both TOC area 210A and itsparent section 200A line up with the respective incoming edges of TOCarea 210B and its parent section 200B. The transition between a currentsection and a section immediately before the current section behavessimilarly, with the exception that instead of moving in the leftdirection across the screen of the electronic device, objects move inthe right direction.

In order to maintain the proper display of relationships of thehierarchical UI components, the layers may scroll at different speeds.For example, if a user scrolls at the parent section layer, and thereare many child objects contained in the child TOC area, the childobjects will have to scroll somewhat faster in order to reach theappropriate child objects of the next parent section and bring them onto the display with their parent. Likewise, multiple child objects maybe scrolled while the parent object remains approximately stationary,indicating the various child objects scrolled through are all childobjects of the displayed parent object. While the above disclosuredescribes attributes of connecting reader UI components for the purposesof scrolling, this disclosure contemplates application of the sameattributes to any suitable set of connected UI components, for example,in the context of a social-networking website or software application.In the social-networking context, a parent object may be a “wall”capable of hosting user-created content and the child objects may be theuser-created content, including links, videos, pictures, etc. thecontent contains. The child objects may be organized in any suitableorientation and according to any suitable metric, such as time posted oruser posted by. As another example, the parent object may be anapplication such as a chat or music-playing application, and the childobjects may be the users within the chat application or individual songsor playlists within the music playing application. In particularembodiments, a user may pre-select a portion of objects to be displayed.In addition or alternatively, a user may determine specific rulesgoverning the selection of a portion of objects to be simultaneouslydisplayed. For example, a user may choose to simultaneously display allcontent posted to a user's profile page by a specific user or group, orall pictures in a given photo album. The above discussion of scrollingand locking may apply to any suitable set of simultaneously displayed orconnected UI components in any suitable context.

Particular embodiments may be implemented on one or more electronicdevices or computer systems. FIG. 9 illustrates an example electronicdevice 900. For example, computer system 900 may be an embodiment for adesktop computer, laptop computer, tablet computer, personal digitalassistant (PDA), smartphone, satellite navigation device, portable mediaplayer, portable game console, kiosk computer, point-of-sale device, orother suitable device. In particular embodiments, one or more computersystems 900 perform one or more steps of one or more methods describedor illustrated herein. In particular embodiments, one or more computersystems 900 provide functionality described or illustrated herein. Inparticular embodiments, software running on one or more computer systems900 performs one or more steps of one or more methods described orillustrated herein or provides functionality described or illustratedherein. Particular embodiments include one or more portions of one ormore computer systems 900.

This disclosure contemplates any suitable number of computer systems900. This disclosure contemplates computer system 900 taking anysuitable physical form. As example and not by way of limitation,computer system 900 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, or a combination of two or more ofthese. Where appropriate, computer system 900 may include one or morecomputer systems; be unitary or distributed; span multiple locations;span multiple machines; or reside in a cloud, which may include one ormore cloud components in one or more networks. Where appropriate, one ormore computer systems 900 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 900 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 900 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 900 includes a processor 902,memory 904, storage 906, an input/output (I/O) interface 908, acommunication interface 910, and a bus 912. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 902 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 902 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 904, or storage 906; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 904, or storage 906. In particular embodiments, processor902 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 902 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 902 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 904 or storage 906, andthe instruction caches may speed up retrieval of those instructions byprocessor 902. Data in the data caches may be copies of data in memory904 or storage 906 for instructions executing at processor 902 tooperate on; the results of previous instructions executed at processor902 for access by subsequent instructions executing at processor 902 orfor writing to memory 904 or storage 906; or other suitable data. Thedata caches may speed up read or write operations by processor 902. TheTLBs may speed up virtual-address translation for processor 902. Inparticular embodiments, processor 902 may include one or more internalregisters for data, instructions, or addresses. This disclosurecontemplates processor 902 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 902may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 902. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 904 includes main memory for storinginstructions for processor 902 to execute or data for processor 902 tooperate on. As an example and not by way of limitation, computer system900 may load instructions from storage 906 or another source (such as,for example, another computer system 900) to memory 904. Processor 902may then load the instructions from memory 904 to an internal registeror internal cache. To execute the instructions, processor 902 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 902 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor902 may then write one or more of those results to memory 904. Inparticular embodiments, processor 902 executes only instructions in oneor more internal registers or internal caches or in memory 904 (asopposed to storage 906 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 904 (as opposedto storage 906 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 902 tomemory 904. Bus 912 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 902 and memory 904 and facilitateaccesses to memory 904 requested by processor 902. In particularembodiments, memory 904 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate. Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 904 may include one ormore memories 904, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 906 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 906may include an HDD, a floppy disk drive, flash memory, an optical disc,a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB)drive or a combination of two or more of these. Storage 906 may includeremovable or non-removable (or fixed) media, where appropriate. Storage906 may be internal or external to computer system 900, whereappropriate. In particular embodiments, storage 906 is non-volatile,solid-state memory. In particular embodiments, storage 906 includesread-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 906 taking any suitable physicalform. Storage 906 may include one or more storage control unitsfacilitating communication between processor 902 and storage 906, whereappropriate. Where appropriate, storage 906 may include one or morestorages 906. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 908 includes hardware,software, or both providing one or more interfaces for communicationbetween computer system 900 and one or more I/O devices. Computer system900 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 900. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 908 for them. Where appropriate, I/O interface 908 mayinclude one or more device or software drivers enabling processor 902 todrive one or more of these I/O devices. I/O interface 908 may includeone or more I/O interfaces 908, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 910 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 900 and one or more other computer systems 900 or one ormore networks. As an example and not by way of limitation, communicationinterface 910 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 910 for it. As an example and not by way of limitation,computer system 900 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), or one or more portions of theInternet or a combination of two or more of these. One or more portionsof one or more of these networks may be wired or wireless. As anexample, computer system 900 may communicate with a wireless PAN (WPAN)(such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (such as, for example, a GlobalSystem for Mobile Communications (GSM) network), or other suitablewireless network or a combination of two or more of these. Computersystem 900 may include any suitable communication interface 910 for anyof these networks, where appropriate. Communication interface 910 mayinclude one or more communication interfaces 910, where appropriate.Although this disclosure describes and illustrates a particularcommunication interface, this disclosure contemplates any suitablecommunication interface.

In particular embodiments, bus 912 includes hardware, software, or bothcoupling components of computer system 900 to each other. As an exampleand not by way of limitation, bus 912 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 912may include one or more buses 912, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage medium or media, or anysuitable combination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium or media may bevolatile, non-volatile, or a combination of volatile and non-volatile,where appropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

This disclosure encompasses all changes, substitutions, variations,alterations, and modifications to the example embodiments herein that aperson having ordinary skill in the art would comprehend. Moreover,reference in the appended claims to an apparatus or system or acomponent of an apparatus or system being adapted to, arranged to,capable of, configured to, enabled to, operable to, or operative toperform a particular function encompasses that apparatus, system,component, whether or not it or that particular function is activated,turned on, or unlocked, as long as that apparatus, system, or componentis so adapted, arranged, capable, configured, enabled, operable, oroperative.

What is claimed is:
 1. A computer-implemented method comprising: arranging a plurality of components of a user interface in a hierarchy, the hierarchy having one or more layers and each layer having at least one of the components of the user interface; presenting the user interface according to a structure of the hierarchy, comprising: presenting one or more first components in the hierarchy as floating on top of a second component, the first components being children of the second component according to the structure of the hierarchy, the first components being presented in a first layer of the user interface and the second component being presented in a second layer of the user interface beneath the first layer; and enabling a user to interact with the components uniformly, such that each specific user interaction, when applied to each of the components, results in a similar response from each of the components.
 2. The computer-implemented method of claim 1, wherein the one or more second components are presented in a table of contents of the first component.
 3. The computer-implemented method of claim 1, wherein at least one of the one or more user interactions comprises a manipulation of the components.
 4. The computer-implemented method of claim 3, wherein the manipulation comprises contacting one or more of the components displayed on a touch-sensitive display of a device with one or more fingers, and moving the one or more fingers to move the one or more manipulated components on the display of the device.
 5. The computer-implemented method of claim 4, wherein the movement of the one more fingers comprises a swiping motion on the touch-sensitive display, resulting in the manipulated components scrolling across the display.
 6. The computer-implemented method of claim 3, wherein the manipulation comprises contacting one or more of the components displayed on a touch-sensitive display of a device with one or more fingers, and moving the one or more fingers to resize the one or more manipulated components on the display of the device.
 7. The computer-implemented method of claim 6, wherein the movement of the one or more fingers comprises: pinching two or more fingers together to decrease the size of the manipulated components; or spreading two or more fingers apart to increase the size of the manipulated components.
 8. One or more computer-readable non-transitory storage media embodying logic that is operable when executed to: arrange a plurality of components of a user interface in a hierarchy, the hierarchy having one or more layers and each layer having at least one of the components of the user interface; present the user interface according to a structure of the hierarchy, comprising: presenting one or more first components in the hierarchy as floating on top of a second component, the first components being children of the second component according to the structure of the hierarchy, the first components being presented in a first layer of the user interface and the second component being presented in a second layer of the user interface beneath the first layer; and enable a user to interact with the components uniformly, such that each specific user interaction, when applied to each of the components, results in a similar response from each of the components.
 9. The media of claim 8 further embodying logic operable to present the one or more second components as a table of contents of the first component.
 10. The media of claim 8, wherein at least one of the one or more user interactions comprises a manipulation of the components.
 11. The media of claim 10, wherein the manipulation comprises contacting one or more of the components displayed on a touch-sensitive display of a device with one or more fingers, and moving the one or more fingers to move the one or more manipulated components on the display of the device.
 12. The media of claim 11, wherein the movement of the one more fingers comprises a swiping motion on the touch-sensitive display, resulting in the manipulated components scrolling across the display.
 13. The media of claim 10, wherein the manipulation comprises contacting one or more of the components displayed on a touch-sensitive display of a device with one or more fingers, and moving the one or more fingers to resize the one or more manipulated components on the display of the device.
 14. The media of claim 13, wherein the movement of the one or more fingers comprises: pinching two or more fingers together to decrease the size of the manipulated components; or spreading two or more fingers apart to increase the size of the manipulated components.
 15. A system comprising: a memory comprising instructions executable by one or more processors; and the one or more processors coupled to the memory and operable to execute the instructions, the one or more processors being operable when executing the instructions to: arrange a plurality of components of a user interface in a hierarchy, the hierarchy having one or more layers and each layer having at least one of the components of the user interface; present the user interface according to a structure of the hierarchy, comprising: presenting one or more first components in the hierarchy as floating on top of a second component, the first components being children of the second component according to the structure of the hierarchy, the first components being presented in a first layer of the user interface and the second component being presented in a second layer of the user interface beneath the first layer; and enable a user to interact with the components uniformly, such that each specific user interaction, when applied to each of the components, results in a similar response from each of the components.
 16. The system of claim 15, the processors further operable to present the one or more second components as a table of contents of the first component.
 17. The system of claim 15, wherein at least one of the one or more user interactions comprises a manipulation of the components.
 18. The system of claim 15, wherein the manipulation comprises contacting one or more of the components displayed on a touch-sensitive display of a device with one or more fingers, and moving the one or more fingers to move the one or more manipulated components on the display of the device.
 19. The system of claim 15, wherein the movement of the one more fingers comprises a swiping motion on the touch-sensitive display, resulting in the manipulated components scrolling across the display.
 20. The system of claim 15, wherein the manipulation comprises contacting one or more of the components displayed on a touch-sensitive display of a device with one or more fingers, and moving the one or more fingers to resize the one or more manipulated components on the display of the device. 